Second standards

Dave Winer:

Then I did a thing called Scripting News Format, which was a way – an XML-ization of my blog which is Scripting News. And www.scripting.com. And so every day when I published Scripting News, in addition to the HTML version, it would produce the XML version. And so my thought there was, “Well, this is – now it’s not a chicken and egg. So I’m gonna publish in this format. I’m gonna publicize it. I’m gonna say, ‘Okay, anybody wants to build an application off of this, great, go for it.'”

[…]

And then in early 1999, I started getting some e-mails from people at Netscape. And they were pretty excited, and they showed me the things that they were doing, and I didn’t quite understand what they were doing. […] I thought they were adopting Scripting News format. From what I could see, that’s what it looked like. Instead what they were doing was they were reinventing the wheel. They were coming out with a format that was totally wholly incompatible with mine.

And so when I finally saw it, I was very angry with ’em for doing this. I go, well, what’s the point of going first if, when the second guy comes along and they do it completely differently. Now, this, as it turned out to be such a major insight that it’s – the guy who goes second has the power to create the standard, not the guy who goes first. The guy who goes first sits there helpless while the world decides whether or not they’re gonna adopt that.

So that’s where I was. That was my posture. And I couldn’t do anything about it, except it turns out I could. And what I decided to do was to embrace their format, and to deprecate mine. And, basically, what I did was, first I sucked in all of the features that were in their format that weren’t in mine. Okay?

And I came out with Scripting News, version 2.0. And that was like a shot across their bow. Okay? At the same time, I said, “I’m gonna support RSS, your format, in everything I do…” […] And they saw the shot across the bow and something happened inside of Netscape, and they returned the favor. They took all the features out of Scripting News format that weren’t in RSS and came out with RSS 0.91, which was exactly what I wanted them to do. At which point I said, “I’m killing Scripting News format, and I’m wholesale adopting RSS 0.91. I’m going to only do RSS 0.91 now.”

And I got myself into the position to be the second guy. I ratified that, and that became the standard. […] [I]t’s like an Aesop’s Fable almost in the sense that you could really do powerful stuff with this, and I used that technique over and over again, and it really works. Which is basically, what you do is you throw your ego out the door, and you say, “I don’t care what the damn thing’s called…” […] It’s just the worst thing is to have it called two different things. That we can’t do. So by throwing out Scripting News format and saying, “Okay, I’m just going with RSS,” that settled all the arguments right then and there.

Compatibility matters

Steven Vaughan-Nichols: “Over in the land of LAMP (Linux, Apache, MySQL and the scripting language of your choice that begins with P), they’re discovering that backward compatibility is a bear. Welcome to the world of serious software development.”

Comments Off on Compatibility matters

The writable web

Who says a web-based office suite doesn’t make sense? I’m writing this post in Writely, a web-based word processor that supports posting to weblogs (complete with preview mode) as well as real-time collaboration, basic document management, and several other very nice features. It even does auto-save, and there’s a spell checker too, complete with squiggly lines underneath misspelled words.

I decided to give Writely a try after Steve Rubel explained how he uses it to draft blog posts, thinking it might make a nice alternative to the antiquated TEXTAREA widget that is, remarkably enough, still the primary interface for editing the web after all these years.

Now that I’m using it, though, I’m beginning to see how it could grow into more than that, at least for me. Sure, it’s fairly simplistic, but it does all the basics reasonably well, so that’s actually a feature (Steve says: “Think of it as Microsoft Word for the Web – except with just the parts you need!”). Combine that with the ability to access my documents from any computer, as well as the collaboration facilities (which look interesting and appear to go above and beyond the heavyweight email-based collaboration features found in more traditional office suites, though I haven’t tried them yet), and I’m intrigued.

Now, if there were only a Writely component I could include in other web applications, or maybe even graft in as a substitute for the TEXTAREAs on arbitrary webpages using some sort of Firefox extension or Greasemonkey script. I’d love to see support for the Open Document Format too, so I could use Writely as a sort of document store and pass documents between thin client and fat client seamlessly. Then we’d be getting into really intriguing territory. (While I’m at it, a way to pull down the templates and style sheets from my weblog for a true WYSIWYG editing experience would be very nice too. Heck, as long as we’re thinking outside the box, why not just allow me to edit the page directly?)

(As I’m writing this, I can’t help but think of the Innovator’s Dilemma, i.e., market leaders continuing to stuff more and more features into products that fewer and fewer people actually need to fuel the relentless drive upmarket, opening themselves up to attacks from below by providers of “good enough” products..)

Update: I couldn’t get the blog posting feature of Writely to work, so I ended up copying-and-pasting the HTML into WordPress. Oh, well. On a brighter note, while I was fiddling with the blog posting feature, CNET News.com reported that Writely is adding support for the Open Document Format and intends to add support for PDF too. Suite!

Untangling the web

Dave Winer: “So we need some way to share subscriptions between different applications, between vendors — we need an way to do that that works when the lists are small, and one that works when the lists grow large. Most important, it needs to be open, and in order to be really open it has to be simple, so that no vendor can use their large size as a way of keeping smaller competitors out of the market. We’ve seen that when this happens innovation stops. Let’s learn from our past mistakes, and not make it so easy to dominate a market. Compatibility should never be a reason to choose one product over another. Let performance, features and price drive the market, not the obscurity of the wires connecting the apps together.”

Comments Off on Untangling the web

Really Simple Synchronization too

Ray Ozzie: “As an industry, we have simply not designed our calendaring and directory software and services for this ‘mesh’ model. The websites, services and servers we build seem to all want to be the ‘owner’ and ‘publisher’; it’s really inconsistent with the model that made email so successful, and the loosely-coupled nature of the web.”

Great stuff. Can’t wait to see what comes of this. Personally, I think synchronization is going to be one of the key platform features of Web 2.0. As I’ve said before, I simply don’t buy that we’re just around the corner from ubiquitious network connectivity, and absent that, we’re going to have to deal effectively with the disconnected operation problem.

Comments Off on Really Simple Synchronization too

“Small pieces…” down the software stack

John Carroll:

[T]echnology across software domains should be consistent. There should be a standard, however de facto, that works everywhere. Skills should be portable across those markets, so that someone with experience in desktop software development has a decent chance of developing for handhelds. Everything should just work together, and development across all devices should be relatively straightforward to someone with experience in any one of them.

Microsoft has been very good at this. […]

I wonder whether the open source world can match that consistency. Granted, there are movements to make things consistent, such as the LAMP set of technologies for Linux, or the Linux Standard Base project. However, the structure of development for open source products militates against the establishment of any consistent standard.

Open source development relies mostly on voluntary contributions. People don’t tend to contribute to ALL open source products (that would be impossible). Rather, they concentrate mostly on the products that interest them.

This results in a developer version of tunnel vision. Since all that matters is the creation of the handful of products to which the volunteer contributes, what matters is the interests of contributors to a single project, not the interests of technology which should span ALL products.

Great points, though I clearly disagree that the open source community is fundamentally unable to match Microsoft on providing a consistent environment. It’s going to take some work on our part though.

One of the reasons Microsoft has historically been so successful is its unique ability to integrate disparate technologies into cohesive wholes, as well as to leave the mechanisms they use to do this just open enough that others can integrate with them to a degree but never so open that they can do so better than Microsoft can.

Of course, Microsoft can do this because they develop, own, and control each of the pieces and the interfaces between them. Other platforms (Linux, Java, UNIX, even the Web to a certain extent) are comparative mishmashes for the exact reasons John describes, namely that every project is developed independently, and that there’s comparatively little thought put into how the pieces interact.

The only parties that do think about these issues, the Linux distributors, tend to do so after the fact, and, of course, they have no direct control over the projects that produce the pieces to push any integration improvements they might make upstream (in the general case anyway).

Furthermore, once multiple solutions in a given problem domain emerge, it’s not always possible to generalize the interfaces when the projects behind them don’t agree with each other on the “right solution”. In other words, because it’s an after-the-fact thing, “not invented here” and general inertia come into play.

So, while the technical aspect of the problem is important, namely the interfaces between components (APIs at the source level and ABIs at the binary level), there’s a social aspect here too. We need to encourage the kind of competition at the implementation level that results in technical excellence while fostering a sense of cooperation at the interface level to ensure that, collectively, the various implementations fit seamlessly into a larger, consistent environment.

In other words, we don’t want to get in the way of open source project and Linux distro innovation, but we do want to encourage open source projects and Linux distros to innovate in a collaborative fashion so the technology that ultimately wins in the marketplace can be standardized with as few legacy issues as possible (or, in the case where multiple best practices emerge, for legacy reasons or otherwise, we want to collaboratively define a uniform interface, i.e., cooperate on interface, compete on implementation, etc.).

That’s the only way we’re going to get there.

No pressure

Claire Giordano: “[N]o matter what the result, this project [OpenSolaris] will be written up as business school case study. I don’t know whether it will be a positive case study, or a negative one… But it WILL be a case study!”

“Small pieces loosely joined” and Web 2.0

Om Malik: “[O]n this Web 2.0 highway, there are three exits: Microsoft, Yahoo and Google.”

That’s a clever soundbite, and perhaps it’s true from the venture capitalist’s point of view, but I think it misses something fundamental: That the real attraction of the new web platform is that components don’t have to be rolled up into one big monolith anymore to integrate well with each other.

We’re entering into a world where lots of little, independent component providers will be able to coexist and thrive alongside the platform vendors. Why? The platform vendors no longer have such a chokehold on distribution that the best the component providers can hope for are a few years of prosperity before the platform vendor notices there’s an interesting little market emerging around a particular component, integrates the component into the platform, and renders the independent component unnecessary. In the old world, a component provider’s prosperity was often its ultimate undoing.

I’ve always sympathized with the platform vendors’ (OK, Microsoft’s) argument that this kind of integration is done in the interest of customer convenience—I for one don’t want to buy an operating system only to have to go out and source my own, say, memory management and data compression components (something, if you remember, we had to do in the MS-DOS days). In the old world, that probably meant going out, buying more software, and dealing with the headache of getting it installed and integrated. It was simply more convenient for the customer for the popular components to find their way into the platform, integrated and ready to go with no assembly required.

In the new world, though, sourcing a component is no longer a heavyweight operation. By and large, the components themselves are free, and thanks to open APIs and data formats like RSS, it’s now possible to integrate those components into larger applications with comparative ease. Granted, the applications of today are largely ad hoc “mash ups” without an intermediating platform vendor in the traditional sense, but it won’t be long, in my view, before vendors step into that role and make writing such applications as systematized an operation as, say, writing an application for Windows or Linux is today.

Yes, Microsoft, Yahoo, and Google are probably those vendors. Yes, the component providers probably hook into their platforms as the primary vehicle for monetizing their wares. However, without the same level of control over distribution that the old world enjoyed (not to mention the proliferation of open APIs and data formats), the big guys will have to coexist with the little guys.

The platform vendors will compete by providing the most compelling incentive to the component providers. In old world terms, the platform with the most ISVs will win. This bodes very well indeed for innovation in the new “Web 2.0” world. Above all, the days of the platform vendors integrating all the components into the platform to the exclusion of independent providers have come and gone.

Thankfully.